package integer;

import com.sun.org.apache.bcel.internal.generic.D2F;

import javax.xml.transform.Source;

/**
 * 包装类
 * java提供了8个包装类,分别为对应的8个基本类型
 * 由于基本类型是以值而非对象形式存在,因此没有面向对象特性,为了让基本类型可以参与面向
 * 对向开发,出现了8个包装类,目的是让那个基本类型可以以对象形式表示
 */
public class IntegerDome {
    public static void main(String[] args) {
        /*
        基本类型      包装类
        bgte    >    Bgte
        short   >    Short
        int     >   Integer
        long    >    Long
        float   >    Float
        double  >    Double
        boolean >    Boolean
        char    >    character

         */
        int num=128;//基本类型
        Integer i1=Integer.valueOf(num);//引用类型
        Integer i2=Integer.valueOf(num);
        System.out.println(i1==i2);
        System.out.println(i1.equals(i2));//true

        double dou =123.123;
        Double d1=Double.valueOf(dou);//double的valueof内部就是直接new对象
        Double d2=Double.valueOf(dou);
        System.out.println(d1==d2);
        System.out.println(d1.equals(d2));


        /*
        数字类型的包装类都支持将其表示的数字以基本类型返回.
        需要注意:与基本类型之间互相赋值一样,小类型赋值给大类型可直接赋值,
        而大类型往小类型上赋值可能丢失精度.



         */
        int in=i1.intValue();
        System.out.println(in);
        double dd=i1.doubleValue();
        System.out.println(dd);
        //包装类定义了两个常量用于获取取值范围
        //获取int最大值及最小值
        int imex=Integer.MAX_VALUE;
        int imin=Integer.MIN_VALUE;
        System.out.println(imex);
        System.out.println(imin);
        /*
        包装类可以将字符串解析为对应的基本类型,前提是该字符串正确描述了基本类型可以保存的值
         */
        String line="123";
        //String line="123.123";//不能解析为整数
        num=Integer.parseInt(line);
        System.out.println(num);
        dd=Double.parseDouble(line);
        System.out.println(dd);

















    }
}
